﻿using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Text;
using com.clinica.business.BE.estadistica;
using com.clinica.business.BE.actcliente;
using com.clinica.business.BE.actdocpago;
using com.clinica.business.BE.gesliq;
using com.clinica.business.BL.interfaces.estadistica;
using com.clinica.DL.sql.estadistica;
//using com.clinica.DL.sql.gesliq;
//using com.clinica.DL.sql.actdocpago;
using com.clinica.business.entities;
using System.Configuration;
/****************************************************************************************
 * Sistema    : Sistema de Gestión de Clinica
 * Modulo     : Facturación y Presupuestos
 * Descripción: 
 * Autor      : JPEREZ
 * Fecha      : 2011-06-01
 ****************************************************************************************/

namespace com.clinica.business.BL.estadistica
{
    [ServiceBehavior(Name = "CiaSegurosBL",
      Namespace = "http://com.clinica.business.BL.interfaces.estadistica",
      ConcurrencyMode = ConcurrencyMode.Multiple,
      InstanceContextMode = InstanceContextMode.PerSession,
      IncludeExceptionDetailInFaults = true)]
    public class CiaSegurosBL : ICiaSegurosBL
    {
        #region ICiaSegurosBL Members

        public List<CiaSegurosBE> ObternerReporteSeguros(CiaSegurosBE request)
        {
            /****************************************************************************************
             * Sistema    : Sistema de Gestión de Clinica
             * Modulo     : Facturación y Presupuestos
             * Descripción: 
             * Autor      : JPEREZ
             * Fecha      : 2011-06-01
             ****************************************************************************************/

            List<CiaSegurosBE> lstLiquidaciones = new List<CiaSegurosBE>();
            try
            {
                lstLiquidaciones = CiaSegurosDL.ObtenerLiquidaciones(request);               
            }
            catch (Exception ex)
            {
                FaultReason err = new FaultReason(ex.Message);
                throw new FaultException(err);
                //new ErrorSGC(1,ex.Message)
            }

            return lstLiquidaciones;
        }

        #endregion


        #region ICiaSegurosBL Members


        public List<LiquidacionBE> ObternerReporteLiquidacion(LiquidacionBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            List<LiquidacionBE> lstLiquidaciones = new List<LiquidacionBE>();
            try
            {
                lstLiquidaciones = LiquidacionDL.ObtenerLiquidaciones(request, dtFecha_Inicio, dtFecha_Fin);
                foreach (LiquidacionBE item in lstLiquidaciones)
                {
                    if (item.FechaEmision != null)
                        item.FechaEmisionVista = item.FechaEmision.ToString("dd/MM/yyyy").Substring(0, 10);
                }
            }
            catch (Exception ex)
            {
                FaultReason err = new FaultReason(ex.Message);
                throw new FaultException(err);
                //new ErrorSGC(1,ex.Message)
            }

            return lstLiquidaciones;
        }

        #endregion

        #region ICiaSegurosBL Members


        public List<DocumentoPagoBE> ObternerReporteDocumentoPago(com.clinica.business.BE.actdocpago.DocumentoPagoBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            List<DocumentoPagoBE> lstLiquidaciones = new List<DocumentoPagoBE>();
            try
            {
                lstLiquidaciones = DocumentoPagoDL.ObtenerDocumentoPagoXTipoDoc(int.Parse(request.TipoDocumento), dtFecha_Inicio, dtFecha_Fin);
                foreach (DocumentoPagoBE item in lstLiquidaciones)
                {
                    if (item.FechaEmision != null)
                        item.FechaEmisionVista = item.FechaEmision.ToString("dd/MM/yyyy").Substring(0, 10);
                }
            }
            catch (Exception ex)
            {
                FaultReason err = new FaultReason(ex.Message);
                throw new FaultException(err);
                //new ErrorSGC(1,ex.Message)
            }

            return lstLiquidaciones;
        }

        public List<DocumentoPagoBE> ObternerReporteDocumentoPagoXCliente(com.clinica.business.BE.actdocpago.DocumentoPagoBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            List<DocumentoPagoBE> lstLiquidaciones = new List<DocumentoPagoBE>();
            try
            {
                lstLiquidaciones = DocumentoPagoDL.ObtenerDocumentoPagoXClientes(int.Parse(request.TipoDocumento), dtFecha_Inicio, dtFecha_Fin);
                foreach (DocumentoPagoBE item in lstLiquidaciones)
                {
                    if (item.FechaEmision != null)
                        item.FechaEmisionVista = item.FechaEmision.ToString("dd/MM/yyyy").Substring(0, 10);
                }
            }
            catch (Exception ex)
            {
                FaultReason err = new FaultReason(ex.Message);
                throw new FaultException(err);
                //new ErrorSGC(1,ex.Message)
            }

            return lstLiquidaciones;
        }
        public List<DocumentoPagoBE> ObternerReporteDocumentoPagoXCia(com.clinica.business.BE.actdocpago.DocumentoPagoBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            List<DocumentoPagoBE> lstLiquidaciones = new List<DocumentoPagoBE>();
            try
            {
                lstLiquidaciones = DocumentoPagoDL.ObtenerDocumentoPagoXCia(int.Parse(request.TipoDocumento), dtFecha_Inicio, dtFecha_Fin);
                foreach (DocumentoPagoBE item in lstLiquidaciones)
                {
                    if (item.FechaEmision != null)
                        item.FechaEmisionVista = item.FechaEmision.ToString("dd/MM/yyyy").Substring(0, 10);
                }
            }
            catch (Exception ex)
            {
                FaultReason err = new FaultReason(ex.Message);
                throw new FaultException(err);
                //new ErrorSGC(1,ex.Message)
            }

            return lstLiquidaciones;
        }
        #endregion





        #region ICiaSegurosBL Members


        public List<ClienteBE> ObternerCliente(int tipo, string Nombre)
        {
            List<ClienteBE> lstLiquidaciones = new List<ClienteBE>();
            try
            {
                lstLiquidaciones = ClienteDL.ObtenerClientes(tipo, Nombre.Trim());
            }
            catch (Exception ex)
            {
                FaultReason err = new FaultReason(ex.Message);
                throw new FaultException(err);
                //new ErrorSGC(1,ex.Message)
            }

            return lstLiquidaciones;
        }

        #endregion
    }
}
